package com.qinglei.recoup.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qinglei.recoup.common.domain.CommonRes;
import com.qinglei.recoup.system.domain.MonitorTime;
import com.qinglei.recoup.system.pojo.AddMonitorTimeParam;
import com.qinglei.recoup.system.pojo.MonitorInfoTreeVO;
import com.qinglei.recoup.system.pojo.TimePeriodParam;
import com.qinglei.recoup.system.pojo.UpdateMonitorTimeParam;
import com.qinglei.recoup.system.pojo.UpdateOutBedTimeoutParam;

import java.util.List;

/**
 * @author syp
 */
public interface MonitorTimeService extends IService<MonitorTime> {

    /**
     * 状态 - 阈值统一
     */
    int UNIFIED_YES = 1;

    /**
     * 状态 - 阈值未统一
     */
    int UNIFIED_NO = 0;


    /**
     * 查询检测仪工作配置 (楼层房间床) 树
     */
    List<MonitorInfoTreeVO> getMonitorInfoTree();

    /**
     * 添加检测仪工作时间段
     *
     * @param param
     */
    void addMonitorTime(AddMonitorTimeParam param) throws Exception;

    /**
     * 修改检测仪工作时间段
     *
     * @param param
     */
    void updateMonitorTime(UpdateMonitorTimeParam param) throws Exception;

    /**
     * 删除检测仪工作时间段
     *
     * @param type
     * @param monitorTimeId
     * @return
     */
    void delMonitorTime(Integer type, Integer monitorTimeId) throws Exception;

    /**
     * 根据objid和type查询监控时间
     *
     * @param objId
     * @param type
     * @return
     */
    List<TimePeriodParam> getMonitorTimeByObjIdAndType(Integer objId, Integer type);

    /**
     * 修改离床时间阀值
     *
     * @param param
     * @return
     */
    CommonRes updateOutBedTimeout(UpdateOutBedTimeoutParam param);
}
